/*
Copyright 2017 yangchong211（github.com/yangchong211）

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package com.yc.video.controller;

import ohos.sensor.bean.CategoryOrientation;
import ohos.sensor.data.CategoryOrientationData;
import ohos.sensor.listener.ICategoryOrientationDataCallback;

/**
 * 设备方向监听使用传感器监听
 */
public class OrientationHelper implements ICategoryOrientationDataCallback {
    // 方向传感器数据
    private static final int MATRIX_LENGTH = 9;
    private static final int ROTATION_VECTOR_LENGTH = 9;
    private long mLastTime;

    private OnOrientationChangeListener mOnOrientationChangeListener;

    public void setOnOrientationChangeListener(OnOrientationChangeListener onOrientationChangeListener) {
        mOnOrientationChangeListener = onOrientationChangeListener;
    }

    @Override
    public void onSensorDataModified(CategoryOrientationData categoryOrientationData) {
        long currentTime = System.currentTimeMillis();
        if (currentTime - mLastTime > 500) { // 500毫秒检测一次
            mLastTime = currentTime;
            if (mOnOrientationChangeListener != null) {
                mOnOrientationChangeListener.onOrientationChanged(categoryOrientationData.getValues());
            }
        }
    }

    @Override
    public void onAccuracyDataModified(CategoryOrientation categoryOrientation, int i) {
    }

    @Override
    public void onCommandCompleted(CategoryOrientation categoryOrientation) {
    }
}
